<!DOCTYPE html>
<html>

	<head>
		<meta charset="UTF-8">
		<title>课程管理</title>
		<meta name="renderer" content="webkit">
		<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
		<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
		<link rel="stylesheet" href="/css/font.css">
		<link rel="stylesheet" href="/css/xadmin.css">
		<link rel="stylesheet" href="/css/myCustom.css">
	</head>

	<body>
		<div class="x-nav">
			<span class="layui-breadcrumb">
				<a href="#">学校信息管理</a>
				<a>
					<cite>课程管理</cite></a>
			</span>
			<a class="layui-btn layui-btn-small" style="line-height:1.6em;margin-top:3px;float:right" href="javascript:location.replace(location.href);"
			 title="刷新">
				<i class="layui-icon" style="line-height:30px">ဂ</i></a>
		</div>

		<div class="x-body" id="app">
			<div class="layui-row layui-col-space15">
				<div class="layui-col-md3">
					<div class="layui-card">
						<xblock>
							院系专业列表
						</xblock>
						<ul id="majorTree">
						  <li><a href="javascript:;" class="allMajor"><i class="layui-icon layui-tree-leaf"></i><cite>全部</cite></a></li>
						</ul>
					</div>
				</div>
				<div class="layui-col-md9">
					<xblock>
							<button class="layui-btn layui-btn-danger" onclick="delAll()"><i class="layui-icon"></i>批量删除</button>
							<button class="layui-btn" onclick="open_addCourse()"><i class="layui-icon"></i>添加</button>
							<span class="x-right" style="line-height:40px">共有数据：{{ pageInfo.total }} 条，当前{{ pageInfo.pageNum }} / {{ pageInfo.pages }}页</span>
							<form id="import_excel_form" enctype="multipart/form-data">
								<input type="file" hidden="hidden" name="excelFile" id="importInput" onchange="import_excel(this)" accept=".xlsx"/>
							</form>
					</xblock>
					<table class="layui-table">
						<thead>
							<tr>
								<th width="20">
									<div class="layui-unselect header layui-form-checkbox" lay-skin="primary"><i class="layui-icon">&#xe605;</i></div>
								</th>
								<th width="60">课程代码</th>
								<th>课程名称</th>
								<th>所属专业</th>
								<th>课程性质</th>
								<th width="150">操作</th>
						</thead>
						<tbody>
							<tr v-for="course in courses">
								<td>
									<div class="layui-unselect layui-form-checkbox" lay-skin="primary" :data-id="course.id" :data-courseName="course.courseName" ><i class="layui-icon">&#xe605;</i></div>
								</td>
								<td>{{ course.courseNo }}</td>
								<td>{{ course.courseName }}</td>
								<template v-for="schMajor in schMajors">
								<td v-if="schMajor.majorNo == course.majorNo">{{ schMajor.majorName }}</td>
								</template>
								<td v-if="course.type == 1">必修</td>
								<td v-else-if="course.type == 2">专业选修</td>
								<td class="td-manage">
									<button class="layui-btn layui-btn layui-btn-sm" onclick="open_editCourse(this)"><i class="layui-icon">&#xe642;</i>编辑</button>
									<button class="layui-btn-danger layui-btn layui-btn-sm" onclick="member_del(this)" href="javascript:;"><i class="layui-icon">&#xe640;</i>删除</button>
								</td>
							</tr>
						</tbody>
					</table>
					<div class="page" style="margin-top: 10px !important;">
				        <div>
				          <a class="prev pageTxt" href="javascript:void(0)">上一页</a>
				          <a class="first pageTxt" href="javascript:void(0)">首页</a>
				          <template v-for="pageNum in pageInfo.navigatepageNums">
				              <a class="num" href="javascript:void(0)" v-if="pageInfo.pageNum != pageNum" :data="pageNum">{{ pageNum }}</a>
				              <span class="current" v-else :data="pageNum">{{ pageNum }}</span>
				          </template>
				          <a class="last pageTxt" href="javascript:void(0)">尾页</a>
				          <a class="next pageTxt" href="javascript:void(0)">下一页</a>
				        </div>
				      </div>
				</div>
			</div>
		</div>
		
		<script type="text/javascript" src="/js/jquery.min.js"></script>
	    <script type="text/javascript" src="/js/xadmin.js"></script>
	    <script type="text/javascript" src="/lib/layui/layui.js" charset="utf-8"></script>
	    <script type="text/javascript" src="/js/vue.min.js"></script>
	    <script type="text/javascript" src="/js/jquery.form.js"></script>
		<script>
			var vm = new Vue({
	            el : '#app',
	            data : {
	            	// 所有的专业列表
	                schMajors : "",
	                pageInfo:"",
	                // 一页的课程列表
	                courses:"",
	                // 当前选中的专业代码
	                majorNo:"0"
	            },
	            created : function() {
	                // 获取学校课程列表（一级节点为院系，二级为专业）
	                this.listMajorWithTree();
	                // 获取课程列表(0:全部)
	                this.listCourse("0", 1);
	            },
	            methods : {
	            	listMajorWithTree : function() {
	                    var vm = this;
	                    $.ajax({
	                        url : "/sys/school/course/schOrgWithMajorTree",
	                        type : "get",
	                        success : function(result) {
	                            if (result.state) {
	                            	var data = result.data;
	                                var majorTree = JSON.parse(data.listSchOrgWithMajorTree);
	                                vm.schMajors = data.listSchMajor;
	                                // 加载tree数据(放在其它地方会容易导致加载不出来tree数据)
	                                layui.use('tree', function() {
	                                    layui.tree({
	                                        elem: '#majorTree', //传入元素选择器
	                                        nodes: majorTree,
	                                        click: function(node) {
	                                            // node即为当前点击的节点数据
	                                            // 如果选中的是院系
	                                            if (node.majorNo == "0") {
	                                            	return;
	                                            }
	                                            // 如果不是重复点击
	                                        	if (vm.majorNo != node.majorNo) {
		                                        	vm.majorNo = node.majorNo;
		                                        	vm.listCourse(vm.majorNo, 1);
	                                        	}
	                                        }
	                                    });
	                                });
	                            } else {
	                                layui.use(['layer'], function(){
	                                	var layer = layui.layer
		                                layer.msg(""+result.msg, {icon: 5});
                                	});
	                            }
	                        }
	                    });
	                },
	                listCourse:function(majorNo, pageNum) {
	                	var vm = this;
                        $.ajax({
                            url : "/sys/school/course/listCourse",
                            data:{
                            	majorNo:majorNo,
                            	pageNum:pageNum
                            },
                            type : "get",
                            success : function(result) {
                                if (result.state) {
                                	vm.pageInfo = result.data;
                                	vm.courses = result.data.list;
                                } else {
                                	layui.use(['layer'], function(){
                                        var layer = layui.layer
                                        layer.msg(""+result.msg, {icon: 5});
                                    });
                                }
                            }
                        });
	                }
	            }
	        });
			$(function() {
				// 首次加载tree数据时,默认选中"全部"
				$("#majorTree li:first").addClass("selectColor");
			})

			// 对选中的当前树节点加背景颜色
			$("body").on("mousedown", ".layui-tree li a", function() {
				if ($(this).hasClass("allMajor")) {
					$(".layui-tree li, li a").removeClass("selectColor");
					// 如果是“全部”，单独处理
					$(this).parent("li").addClass("selectColor");
					if (vm.majorNo != "0") {
						// 获取全部的课程
						vm.listCourse("0", 1);
						vm.majorNo = "0";
					}
				} else {
					// 所选节点有children代表该节点为院系，不是专业
					var hasChildren = $(this).parent("li").find("ul").length != 0;
					if (!hasChildren) {
						$(".layui-tree li, li a").removeClass("selectColor");
						$(this).addClass("selectColor");
					}
				}
			})

			// 点击页码数，进行跳转
	        $(".page").delegate(".num", "click", function() {
	            var pageNum = $(this).attr("data");
                vm.listCourse(vm.majorNo, pageNum);
	        });
	        // 上一页
	        $(".page").delegate(".prev", "click", function() {
	            if (vm.pageInfo.hasPreviousPage) {
	            	vm.listCourse(vm.majorNo, vm.pageInfo.pageNum - 1);
	            }
	        });
	        // 下一页
	        $(".page").delegate(".next", "click", function() {
	            if (vm.pageInfo.hasNextPage) {
	            	vm.listCourse(vm.majorNo, vm.pageInfo.pageNum + 1);
	            }
	        });
	        // 首页
	        $(".page").delegate(".first", "click", function() {
	            if (!vm.pageInfo.isFirstPage) {
	            	vm.listCourse(vm.majorNo, 1);
	            }
	        });
	        // 尾页
	        $(".page").delegate(".last", "click", function() {
	            if (!vm.pageInfo.isLastPage) {
	            	vm.listCourse(vm.majorNo, vm.pageInfo.pages);
	            }
	        });
			
			// 打开添加课程的子页面
	        function open_addCourse() {
	        	if (vm.majorNo == "0") {
                    layer.msg('请在左侧‘院系专业列表’选择一个专业', {icon: 5});
                    return;
                }
	        	x_admin_show('添加课程','/sys/school/course/toAddCourse?majorNo=' + vm.majorNo,600,430);
	        }
			
	        // 打开编辑院课程的子页面
	        function open_editCourse(obj) {
	            var courseId = $(obj).parents("tr").find("div:first").attr("data-id");
	            x_admin_show('编辑课程','/sys/school/course/toEditCourse?courseId=' + courseId,600,430)
	        }
								
			/*单个删除*/
			function member_del(obj) {
				var courseName = $(obj).parents("tr").find("div:first").attr("data-courseName");
	            var id = $(obj).parents("tr").find("div:first").attr("data-id");
	            var courseId = [];
	            courseId.push(id);
				layer.confirm('确认要删除【'+courseName+'】吗？', function(index) {
					 $.ajax({
		                  url : "/sys/school/course/delCourse",
		                  type : "post",
		                  data : {
		                	  courseId: courseId
		                  },
		                  success : function(result) {
		                      if (result.state) {
		                          layer.msg('删除成功!',{icon:1,time:1000});
		                          // 根据当前页面数据量决定加载前一页还是当前页
		                          if (vm.pageInfo.size - 1 == 0 && vm.pageInfo.pageNum != 1) {
	                                  vm.listCourse(vm.majorNo, vm.pageInfo.pageNum - 1);
		                          } else {
		                        	  vm.listCourse(vm.majorNo, vm.pageInfo.pageNum);
		                          }
		                      } else {
		                          layer.msg(""+result.msg, {icon: 5});
		                      }
		                  }
		              });
				});
			}

			// 批量删除
			function delAll(argument) {
				var courseId = tableCheck.getData();
	            if (courseId.length <= 0) {
	                return;
	            }
	            // 获取选中的课程名称
	            var obj = $(".layui-form-checked").not('.header');
	            var courseName=[];
	            obj.each(function(index, el) {
	            	courseName.push(obj.eq(index).attr('data-courseName'));
	            });
				layer.confirm('确认要删除【'+courseName+'】吗？', function(index) {
					$.ajax({
	                    url : "/sys/school/course/delCourse",
	                    type : "post",
	                    data : {
	                    	courseId: courseId
	                    },
	                    success : function(result) {
	                        if (result.state) {
	                            layer.msg('删除成功', {icon: 1});
	                            // 移除所有checkbox的勾选状态
                           		$(".layui-form-checkbox").removeClass('layui-form-checked');
	                            
                           	    // 根据当前页面数据量决定加载前一页还是当前页
                                if (vm.pageInfo.size - courseId.length == 0 && vm.pageInfo.pageNum != 1) {
                                    vm.listCourse(vm.majorNo, vm.pageInfo.pageNum - 1);
                                } else {
                                    vm.listCourse(vm.majorNo, vm.pageInfo.pageNum);
                                }
	                        } else {
	                            layer.msg(""+result.msg, {icon: 5});
	                        }
	                    }
	                });
				});
			}
			// 保存后，更新页面数据
			function updateData() {
				vm.listCourse(vm.majorNo, 1);
			}
		</script>
	</body>

</html>
